package com.csesteel.crm.dao;

import com.csesteel.common.dao.BaseDao;
import com.csesteel.crm.domain.User;
import org.springframework.security.core.GrantedAuthority;

import java.util.Collection;
import java.util.List;

/**
 * Created by Administrator on 2015/4/21 0021.
 */
public interface UserDao extends BaseDao<User> {

    /**
     * 对用户附加角色
     * @param userId
     * @param roleId
     */
    void authUserByRole(Integer userId,Integer roleId);

    /**
     * 根据用户名和密码查询用户
     */
     User getUserByNameAndPassword(String name,String passwd);

    /**
     * 逻辑删除用户
     * 根据id 删除用户
     */
    void deleteUserById(String id);

    /**
     * 根据用户名获取用户信息
     * @param username
     * @return
     */
    public User getByUsername(String username);

    /**
     * 根据用户名获取用户权限
     * @param username
     * @return
     */
    public Collection<GrantedAuthority> loadUserAuthorities(String username);

    public List<User> findByPage( int pageNo, int pageSize
            , String name);
    public List<User> findByPageNoparams( int pageNo, int pageSize);

    /**
     * 获取总数参数
     * @param name
     * @return
     */
    public long findCountUsersWithParams(String name);

    /**
     * 获取总数参数不带查询参数
     * @return
     */
    public long findCountUsersNohParams();
}
